package com.onlyphoto.onlymall.utils;

import android.content.Context;
import android.content.Intent;

import com.onlyphoto.onlymall.bean.response.UserInfoBean;
import com.onlyphoto.onlymall.events.LoginEvent;
import com.onlyphoto.onlymall.events.LoginOutEvent;
import com.onlyphoto.onlymall.services.UploadLocationService;

import org.greenrobot.eventbus.EventBus;

import cn.jpush.android.api.JPushInterface;

/**
 * Created by gaochujia on 2019-6-27.
 * 用来管理用户的登录、注册、登出
 */

public class UserUtil {
    /**
     * 用户在登录或者注册之后调用该方法
     * 该方法从来保存用户的数据和cookie
     * 在保存数据之后会发送{@link LoginEvent}
     *
     * @param context
     * @param userInfo
     */
    public static void saveUserInfo(Context context, UserInfoBean userInfo) {
        if (userInfo == null) return;

        SharePreferenceUtil.getInstance(context).setToken(userInfo.getUser_token());
        SharePreferenceUtil.getInstance(context).setIntData(Constants.IS_SET_PWD, userInfo.getSet_password());
        CookieManagerUtil.setupCookie(context, userInfo);

        context.startService( new Intent(context, UploadLocationService.class));
        //数据保存之后再发送消息
        EventBus.getDefault().post(new LoginEvent(context, userInfo));

        //保存用户信息到SharePreference
        ConfigUtil.instance.setUserInfo(userInfo);

    }

    /**
     * 该方法在用户退出的时候调用
     * 会删除保存的用户数和cookie
     * 最后会发送{@link LoginOutEvent}
     *
     * @param context
     */
    public static void logout(Context context) {
        SharePreferenceUtil.getInstance(context).setToken("");
        SharePreferenceUtil.getInstance(context).setBoolData("isSetAlias", false);
        ConfigUtil.instance.setUserInfo(null);
        JPushInterface.deleteAlias(context, 1);
        //清除cookie
        CookieManagerUtil.clearCookie(context);

        EventBus.getDefault().post(new LoginOutEvent());
    }
}
